/**
 * @author: zhiqiang
 * @version: 1.0
 * @date: 2022/3/17
 * @description:
 */
package com.lzq.builder.init;

public class Client {
    public static void main(String[] args) {
        /**
         * 对于组装不同的电脑这个功能，这样是可以实现的，但是这种方式存在比较大的问题：
         *  1.对于客户端来说，它并不关心到底需要如何组装这台电脑，它只关心最后拿到的是这样配置的一台电脑
         *  2.组装这台电脑的步骤非常多，如果后期需要添加类似的Computer类，最后客户端调用容易遗漏步骤，即使写在每个电脑类中，因为没有规范，也容易遗漏
         *  3.电脑（产品）和创建电脑（创建产品）存在耦合
         */
        Computer1 computer1 = new Computer1();
        computer1.buildCpu();
        computer1.buildDisk();
        computer1.buildMoBo();
        computer1.buildRAM();
        computer1.buildPower();

        Computer2 computer2 = new Computer2();
        computer2.buildCpu();
        computer2.buildDisk();
        computer2.buildMoBo();
        computer2.buildRAM();
        computer2.buildPower();
    }
}
